home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 1146 / 1146.xpi / chrome / screengrab.jar / content / Highlighter.js < prev    next >
Text File  |  2009-03-09  |  2KB  |  44 lines

  1.  
  2. screengrab.Highlighter = function(contentWindow, highlightSelectedHandler) {
  3.     this.undoSet = new screengrab.UndoSet();
  4.     this.styleUndoSet = new screengrab.UndoSet();
  5.     
  6.     var moveListener = this.createOutliner(this.styleUndoSet);
  7.     var upListener = this.createFinishHandler(this, highlightSelectedHandler);
  8.     
  9.     var contentDocs = new screengrab.Document(contentWindow.document).getDocuments(contentWindow);
  10.     this.addListenersToDocument(contentDocs, upListener, moveListener);
  11. }
  12. screengrab.Highlighter.prototype = {
  13.     addListenersToDocument : function(documents, mouseUp, mouseMove) {
  14.         for (var i = 0; i < documents.length; i++) {
  15.             documents[i].addEventListener("mousemove", mouseMove, true);
  16.             this.undoSet.pushRemoveEventListener("mousemove", mouseMove, documents[i]);
  17.             
  18.             documents[i].addEventListener("mouseup", mouseUp, true);
  19.             this.undoSet.pushRemoveEventListener("mouseup", mouseUp, documents[i]);
  20.         }
  21.     },
  22.     createFinishHandler : function(me, finishHandler) {
  23.         return function(event) {
  24.             me.undoSet.undo();
  25.             me.styleUndoSet.undo();
  26.             finishHandler(event);
  27.         };
  28.     },
  29.     createOutliner : function(styleUndo) {
  30.         var outliner = function(event) {
  31.             if (event.target && event.target != this.highlighted) {
  32.                 this.highlighted = event.target;
  33.                 styleUndo.popAndRun();
  34.                 
  35.                 var orig = event.target.style.MozOutline;
  36.                 styleUndo.pushPropertyChange(event.target.style, "MozOutline", orig);
  37.                 event.target.style.MozOutline = "1px solid #ff0000";
  38.             }
  39.         };
  40.         return outliner;
  41.     }
  42. }
  43.      
  44.